const fs = require("fs");
const path = ".git/COMMIT_EDITMSG";

// 检查提交信息文件是否存在
if (!fs.existsSync(path)) {
  console.error("错误：找不到提交信息文件。请确保您正在执行 git commit 操作。");
  process.exit(1);
}

const msg = fs.readFileSync(path, "utf-8").trim();
if (!msg) {
  console.error("错误：提交信息不能为空。");
  process.exit(1);
}

const commitRE =
  /^(revert: )?(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|release)(\(.+\))?: .{1,50}/;
const mergeRe = /^(Merge pull request|Merge branch)/;

if (!commitRE.test(msg)) {
  if (!mergeRe.test(msg)) {
    console.log("git commit信息校验不通过");

    console.error(`git commit的信息格式不对, 需要使用 title(scope): desc的格式
      比如 fix: xxbug
      feat(test): add new 
      具体校验逻辑看 scripts/verifyCommit.js
    `);
    process.exit(1);
  }
} else {
  console.log("git commit信息校验通过");
}
